// 封装插件对象，将来传给Vue.use调用，给Vue注册全局指令
// Vue.use() Vue源码会调用你传入对象里install方法并传入Vue构造函数
export default {
  install (Vue) {
    // 创建全局自定义指令
    Vue.directive('fofo', {
      // el 指令所在标签被插入到真是DOM时会回调执行，传回来具体原生DOM标签
      inserted (el) {
        console.log(el)
        if (el.tagName === 'INPUT' || el.tagName === 'TEXTAREA') {
          el.focus()
        } else {
          // JS模拟事件, 获取标签对象.事件名() 公式
          const input = el.querySelector('input')
          input.focus()
        }
      },
      // 指令所在标签被"更新"时就会触发此函数
      update (el) {
        console.log(el)
        if (el.tagName === 'INPUT' || el.tagName === 'TEXTAREA') {
          el.focus()
        } else {
          // JS模拟事件, 获取标签对象.事件名() 公式
          const input = el.querySelector('input')
          input.focus()
        }
      }
    })
  }
}
